home *** CD-ROM | disk | FTP | other *** search
Wrap
(*^ ::[paletteColors = 128; currentKernel; fontset = title, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeTitle, center, M7, bold, L1, e8, 24, "Times"; ; fontset = subtitle, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeTitle, center, M7, bold, L1, e6, 18, "Times"; ; fontset = subsubtitle, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeTitle, center, M7, italic, L1, e6, 14, "Times"; ; fontset = section, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, grayBox, M22, bold, L1, a20, 18, "Times"; ; fontset = subsection, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, blackBox, M19, bold, L1, a15, 14, "Times"; ; fontset = subsubsection, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, whiteBox, M18, bold, L1, a12, 12, "Times"; ; fontset = text, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12; fontset = smalltext, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 10, "Times"; ; fontset = input, noPageBreakBelow, nowordwrap, preserveAspect, groupLikeInput, M42, N23, bold, L1, 12, "Courier"; ; fontset = output, output, inactive, noPageBreakBelow, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, L-5, 12, "Courier"; ; fontset = message, inactive, noPageBreakBelow, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, L1, 12, "Courier"; ; fontset = print, inactive, noPageBreakBelow, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, L1, 12, "Courier"; ; fontset = info, inactive, noPageBreakBelow, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, L1, 12, "Courier"; ; fontset = postscript, PostScript, formatAsPostScript, output, inactive, noPageBreakBelow, nowordwrap, preserveAspect, groupLikeGraphics, M7, l34, w282, h287, L1, 12, "Courier"; ; fontset = name, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, italic, L1, 10, "Times"; ; fontset = header, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12; fontset = Left Header, nohscroll, cellOutline, 12; fontset = footer, inactive, nohscroll, noKeepOnOnePage, preserveAspect, center, M7, L1, 12; fontset = Left Footer, cellOutline, blackBox, 12; fontset = help, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 10, "Times"; ; fontset = clipboard, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12; fontset = completions, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12, "Courier"; ; fontset = special1, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12; fontset = special2, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12; fontset = special3, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12; fontset = special4, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12; fontset = special5, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12; next21StandardFontEncoding; ] :[font = title; inactive; Cclosed; preserveAspect; startGroup; ] Lab 9: Differential Geometry :[font = text; inactive; Cclosed; preserveAspect; startGroup; ] This lab continues the study of parametrized curves in two and three dimensions. Here we see how derivatives describe the geometry of curves. :[font = text; inactive; preserveAspect; endGroup; ] Throughout this lab, we will assume that r(t) has been defined to be a three-dimensional vector-valued function which defines the motion of a particle through space. We know then that the first derivative r'(t) defies the velocity function for the particle, and the second derivative r''(t) defines the acceleration function. ;[s] 15:0,0;42,1;43,2;44,3;45,4;209,5;210,6;211,7;212,8;213,9;288,10;289,11;291,12;292,13;293,14;330,-1; 15:1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,10,8,Courier,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,10,8,Courier,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = section; inactive; Cclosed; preserveAspect; startGroup; ] Tangential and Normal Vectors :[font = text; inactive; Cclosed; preserveAspect; startGroup; ] First we define a utility function: mag[v] returns the magnitude of the vector v. (This was called Norm in Lab 8.) It is the square root of the dot product of v with itself: ;[s] 9:0,0;35,1;43,2;78,3;80,4;99,5;105,6;160,7;163,8;176,-1; 9:1,11,8,Times,0,12,0,0,0;1,10,8,Courier,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Courier,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Courier,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Courier,1,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = input; preserveAspect; ] mag[v_] := Sqrt[v.v]; :[font = text; inactive; preserveAspect; ] For example, the magnitude (length) of the vector 3 i - 4 j + 12 k is 13: :[font = input; preserveAspect; endGroup; ] mag[ {3,-4,12} ] :[font = text; inactive; Cclosed; preserveAspect; startGroup; ] Now the tangent vector to the path of the particle is defined to be the unit vector in the direction of the velocity vector. Normally written simply as T, we will denote the tangent vector as uT: ;[s] 5:0,0;153,1;154,2;192,3;195,4;197,-1; 5:1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Courier,1,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = input; preserveAspect; ] uT[r_][t_] := r'[t]/mag[r'[t]]; :[font = text; inactive; preserveAspect; endGroup; ] Here, the "u" reminds us that uT is a unit vector, and it allows us to conform to the Mathematica convention that all user-defined symbols begin with lower-case letters. uT depends upon the given function r, so we make r a parameter for uT. Then uT[r] will be the unit tangent vector function for the given function r, and uT[r][t] will be its value at time t. ;[s] 20:0,0;29,1;33,2;86,3;97,4;172,5;175,6;207,7;208,8;221,9;222,10;238,11;241,12;248,13;255,14;319,15;320,16;325,17;335,18;361,19;372,-1; 20:1,11,8,Times,0,12,0,0,0;1,10,8,Courier,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Courier,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Courier,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Courier,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Courier,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0; :[font = text; inactive; Cclosed; preserveAspect; startGroup; ] The unit normal vector has a similar definition; it is the unit vector in the direction of the derivative of the unit tangent vector: :[font = input; preserveAspect; ] uN[r_][t_] := uT[r]'[t]/mag[uT[r]'[t]]; :[font = text; inactive; preserveAspect; endGroup; ] Since the unit tangent vector function is denoted by uT[r], its derivative is uT[r]'. ;[s] 7:0,0;30,1;38,2;52,3;58,4;77,5;84,6;86,-1; 7:1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Courier,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Courier,1,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = text; inactive; Cclosed; pageBreak; preserveAspect; startGroup; ] Now we define some functions that are very similar to those in Lab 8: :[font = input; preserveAspect; ] gr[r_][a_,b_] := Graphics3D[ { GrayLevel[0.6], Line[ Table[ N[r[t]], {t,a,b,0.02} ] ] } ]; pt[r_][t_] := Graphics3D[ { PointSize[0.01], Point[r[t]] } ]; vec[p_,q_] := Graphics3D[ { GrayLevel[0.0], Thickness[0.01], Line[ {p,p+q} ] } ]; :[font = text; inactive; preserveAspect; endGroup; ] Here, gr[r_][a_,b_] is the graph of r for t in the interval [a,b]. The setting GrayLevel[0.6] causes the curve to be shown in light gray. pt[r_][t_] is the point r(t) in space, and vec[a_,b_] is a thick black line segment from the point p to the point p+q; that is, the vector q emanating from the point p. ;[s] 31:0,0;5,1;20,2;36,3;37,4;42,5;43,6;61,7;62,8;63,9;64,10;79,11;95,12;140,13;151,14;165,15;166,16;167,17;168,18;183,19;195,20;240,21;241,22;255,23;256,24;257,25;258,26;280,27;281,28;307,29;308,30;309,-1; 31:1,11,8,Times,0,12,0,0,0;1,10,8,Courier,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Courier,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Courier,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Courier,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = text; inactive; Cclosed; preserveAspect; startGroup; ] The next definitions allow us to show the tangent and normal vectors at a point as it moves along the curve: :[font = input; preserveAspect; ] fr[r_][t_] := { vec[r[t],uT[r][t]], vec[r[t],uN[r][t]], pt[r][t] }; tr[r_][a_,b_] := Do[ Show[ { gr[r][a,b], fr[r][u] } ], {u,a,b,(b-a)/15} ]; :[font = text; inactive; preserveAspect; endGroup; ] fr[r_][t_] will show the tangent and normal vectors at the point r(t). tr[r_][a_,b_] will produce 16 pictures, each showing fr[r_][t_] at a different point on the curve. ;[s] 10:0,0;11,1;66,2;67,3;68,4;69,5;72,6;86,7;124,8;136,9;170,-1; 10:1,10,8,Courier,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Courier,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Courier,1,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = subsection; inactive; Cclosed; preserveAspect; startGroup; ] Example :[font = text; inactive; Cclosed; preserveAspect; startGroup; ] The path defined by this function is a circular helix: :[font = input; preserveAspect; endGroup; ] r[t_] := { 4Cos[t], 4Sin[t], 3t }; Show[ gr[r][0,2Pi] ]; :[font = text; inactive; Cclosed; preserveAspect; startGroup; ] Its unit tangent vector function is: :[font = input; preserveAspect; endGroup; ] uT[r][t] :[font = text; inactive; Cclosed; preserveAspect; startGroup; ] Simplify this: :[font = input; preserveAspect; endGroup; ] Simplify[%] :[font = text; inactive; Cclosed; preserveAspect; startGroup; ] Similarly, the unit normal vector function for this helix is: :[font = input; preserveAspect; endGroup; ] uN[r][t] // Simplify :[font = text; inactive; Cclosed; pageBreak; preserveAspect; startGroup; ] One of the theorems we proved in class is that the tangent and normal vectors are always perpendicular. We can easily check this for the current example with the dot product: :[font = input; preserveAspect; ] uT[r][t].uN[r][t] :[font = text; inactive; preserveAspect; endGroup; ] Two vectors are perpendicular if and only if their dot product is zero (because the dot product is proportional to the cosine of the angle between them, and the cosine of a right angle is zero). :[font = text; inactive; Cclosed; preserveAspect; startGroup; ] Now we can execute the trajectory command to produce a sequence of 16 pictures. Each picture shows the frame of tangent and normal vectors at a different position. After the command has finished generating the pictures (when "Running…" is gone from the window's title bar), click on the cell bracket that encloses them all (to select them), and then press Command-y to animate the picture. ;[s] 3:0,0;357,1;368,2;392,-1; 3:1,11,8,Times,0,12,0,0,0;1,11,9,Helvetica,1,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = text; inactive; preserveAspect; ] You will see the frame move along the curve. Watch how the tangent vector always remains tangent to the curve and the normal vector always remains perpendicular to it. :[font = input; preserveAspect; ] tr[r][0,2Pi] :[font = text; inactive; preserveAspect; endGroup; endGroup; ] To slow down the animation, mouse down on the down arrow button (the second from the right) in the little panel at the bottom right corner of the window. To stop the animation, click anywhere in the window. :[font = subsection; inactive; Cclosed; preserveAspect; startGroup; ] Exercises :[font = text; inactive; preserveAspect; ] Generate and animate the trajectory (with moving tangent and normal vector frame) for each of the following curves. :[font = text; inactive; preserveAspect; ] 1. {t, t^2, 2t^3/3 }, t in [0,3] :[font = text; inactive; preserveAspect; ] 2. {ArcTan[t], Log[t^2+1]/Sqrt[2], t-ArcTan[t]}, t in [-1,1] :[font = text; inactive; preserveAspect; endGroup; endGroup; ] 3. { t-Sin[t], 1-Cos[t], 4Sin[t/2] }, t in [0,2Pi] :[font = section; inactive; Cclosed; pageBreak; preserveAspect; startGroup; ] Tangent and Normal Components of Acceleration :[font = text; inactive; Cclosed; preserveAspect; startGroup; ] Newton's Second Law of Motion asserts that a particle's acceleration is proportional to the force acting on the particle. Thus the acceleration vector represents the force that determines the motion of the particle. :[font = text; inactive; preserveAspect; ] The plane that contains the frame (uT,uN) is called the osculating plane. We can think of the frame (uT,uN) as a local coordinate system in the osculating plane. ;[s] 11:0,0;35,1;37,2;38,3;40,4;56,5;72,6;102,7;104,8;105,9;107,10;163,-1; 11:1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = text; inactive; preserveAspect; ] We proved in class that the acceleration vector lies in the osculating plane. Thus, it can be represented in terms of the local coordinate system (uT,uN). In other words, we can decompose the acceleration vector into a tangential component (aT)(uT) and a normal component (aN)(uN) so that (aT)(uT) + (aN)(uN) = a, the acceleration vector. The pair of numbers (aT,aN) then become the local coordinates for the acceleration vector a. ;[s] 29:0,0;148,1;150,2;151,3;153,4;243,5;245,6;247,7;249,8;275,9;277,10;279,11;281,12;292,13;294,14;296,15;298,16;303,17;305,18;307,19;309,20;313,21;314,22;363,23;365,24;366,25;368,26;432,27;433,28;435,-1; 29:1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = text; inactive; preserveAspect; ] The vector (aT)(uT) is the projection of a in the direction of uT. Thus, since uT is a unit vector, aT is simply the dot product of a with uT. Similarly, aN is the dot product of a with uN: ;[s] 23:0,0;12,1;14,2;16,3;18,4;41,5;42,6;63,7;65,8;80,9;82,10;101,11;103,12;133,13;134,14;140,15;142,16;156,17;158,18;181,19;182,20;188,21;190,22;192,-1; 23:1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = input; preserveAspect; ] a[r_][t_] := r''[t]; aT[r_][t_] := a[r][t].uT[r][t]; aN[r_][t_] := a[r][t].uN[r][t]; :[font = text; inactive; preserveAspect; ] The following definitions serve the same purpose as the frame and trajectory definitions given previously, except that they show the moving frame of acceleration, containing the acceleration vector together with its tangential and normal components: :[font = input; preserveAspect; endGroup; ] fr[r_][t_] := { vec[r[t],a[r][t]], vec[r[t],aT[r][t]*uT[r][t]], vec[r[t],aN[r][t]*uN[r][t]], pt[r][t] }; tr[r_][c_,b_] := Do[ Show[ { gr[r][c,b], fr[r][u] } ], {u,c,b,(b-c)/15} ]; :[font = subsection; inactive; Cclosed; preserveAspect; startGroup; ] Example :[font = text; inactive; Cclosed; preserveAspect; startGroup; ] Here is the "twisted cubic" from Exercise 1 above: :[font = input; preserveAspect; endGroup; ] r[t_] = { t, t^2, 2t^3/3 }; Show[{gr[r][0,3]}]; :[font = text; inactive; Cclosed; preserveAspect; startGroup; ] Its tangent and normal vectors are: :[font = input; preserveAspect; ] uT[r][t] // Simplify :[font = input; preserveAspect; endGroup; ] uN[r][t] // Simplify :[font = text; inactive; Cclosed; pageBreak; preserveAspect; startGroup; ] Its acceleration vector is: :[font = input; preserveAspect; endGroup; ] a[r][t] :[font = text; inactive; Cclosed; preserveAspect; startGroup; ] Its tangential and normal coordinates are: :[font = input; preserveAspect; ] aT[r][t] // Simplify :[font = input; preserveAspect; endGroup; ] aN[r][t] // Simplify :[font = text; inactive; Cclosed; preserveAspect; startGroup; ] Its tangential and normal components are: :[font = input; preserveAspect; ] aT[r][t]*uT[r][t] // Simplify :[font = input; preserveAspect; endGroup; ] aN[r][t]*uN[r][t] // Simplify :[font = text; inactive; Cclosed; preserveAspect; startGroup; ] That they are the components of the acceleration vector is verified by showing that their sum is equal to the acceleration vector: :[font = input; preserveAspect; endGroup; ] aT[r][t]*uT[r][t] + aN[r][t]*uN[r][t] // Simplify :[font = text; inactive; Cclosed; preserveAspect; startGroup; ] Now the trajectory command produces an animation of the moving acceleration frame. After the command has finished generating the pictures, click on the cell bracket that encloses them all, and then press Command-y to animate the picture. ;[s] 3:0,0;204,1;213,2;238,-1; 3:1,11,8,Times,0,12,0,0,0;1,11,9,Helvetica,1,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = text; inactive; preserveAspect; ] You will see the frame move along the curve. Watch how the acceleration vector indicates the force that keeps the particle on the curve. Keep in mind that the acceleration vector lies with its tangential and normal components in the osculating plane. :[font = input; preserveAspect; endGroup; endGroup; ] tr[r][0,3]; :[font = subsection; inactive; Cclosed; preserveAspect; startGroup; ] Exercises :[font = text; inactive; preserveAspect; ] Generate and animate the trajectory (with moving acceleration vector frame) for each of the following curves. :[font = text; inactive; preserveAspect; ] 1. {ArcTan[t], Log[t^2+1]/Sqrt[2], t-ArcTan[t]}, t in [-1,1] :[font = text; inactive; noPageBreak; preserveAspect; ] 2. {(2t+1)/(t-1), t^2/(t-1), t+2 }, t in [2,3] :[font = text; inactive; preserveAspect; endGroup; endGroup; ] 3. { 4Cos[t], 4Sin[t], 3t }, t in [0,2Pi]. This is the circular helix. What is unusual about its moving acceleration frame? :[font = section; inactive; Cclosed; pageBreak; preserveAspect; startGroup; ] The Moving Trihedral :[font = text; inactive; Cclosed; preserveAspect; startGroup; ] The moving trihedral of a vector-valued function is the frame of three mutually perpendicular unit vectors (uT,uN,uB), where uB is the unit binormal vector, defined to be the cross product of uT and uN. This frame provides a three-dimensional local coordinate system for the moving particle. ;[s] 15:0,0;108,1;110,2;111,3;113,4;114,5;116,6;125,7;127,8;135,9;155,10;192,11;194,12;199,13;201,14;292,-1; 15:1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = text; inactive; preserveAspect; ] The unit vector uB is called the binormal vector. Since it is the cross product of uT and uN, it is perpendicular to them and therefore to the osculating plane. ;[s] 7:0,0;16,1;18,2;84,3;86,4;91,5;93,6;164,-1; 7:1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = text; inactive; preserveAspect; ] To defiine the binormal vector, we must first load the external package that defines the command for computing cross products: :[font = input; preserveAspect; ] <<Calculus`VectorAnalysis` :[font = text; inactive; preserveAspect; ] (Do NOT execute this command more than once.) :[font = text; inactive; preserveAspect; ] To see the command that this package defines, ask Mathematica for its description: ;[s] 3:0,0;50,1;61,2;83,-1; 3:1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = input; preserveAspect; endGroup; ] ?CrossProduct :[font = text; inactive; Cclosed; preserveAspect; startGroup; ] Now define the unit binormal vector: :[font = input; preserveAspect; endGroup; ] uB[r_][t_] := CrossProduct[uT[r][t],uN[r][t]]; :[font = text; inactive; Cclosed; preserveAspect; startGroup; ] The following definitions serve the same purpose as the frame and trajectory definitions given above, except that they show the moving trihedral: :[font = input; preserveAspect; endGroup; ] tri[r_][t_] := { vec[r[t],uT[r][t]], vec[r[t],uN[r][t]], vec[r[t],uB[r][t]], pt[r][t] }; tr[r_][a_,b_] := Do[ Show[ { gr[r][a,b],tri[r][u] } ], {u,a,b,(b-a)/15} ]; :[font = subsection; inactive; Cclosed; preserveAspect; startGroup; ] Example :[font = text; inactive; Cclosed; preserveAspect; startGroup; ] Consider the circular helix again: :[font = input; preserveAspect; endGroup; ] r[t_] = { 4Cos[t], 4Sin[t], 3t }; Show[ {gr[r][0,2Pi]} ]; :[font = text; inactive; Cclosed; preserveAspect; startGroup; ] Let's examine the binormal vector at r(p/6): ;[s] 5:0,0;37,1;38,2;39,3;40,4;44,-1; 5:1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = input; preserveAspect; endGroup; ] ub = uB[r][Pi/6] :[font = text; inactive; Cclosed; preserveAspect; startGroup; ] First, check that it really is a unit vector: :[font = input; preserveAspect; endGroup; ] mag[ub] :[font = text; inactive; Cclosed; pageBreak; preserveAspect; startGroup; ] And also check that it really is perpendicular to both uT and uN: ;[s] 5:0,0;55,1;57,2;62,3;64,4;66,-1; 5:1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = input; preserveAspect; ] ub.uT[r][Pi/6] :[font = input; preserveAspect; endGroup; ] ub.uN[r][Pi/6] :[font = text; inactive; Cclosed; preserveAspect; startGroup; ] Now the trajectory command tr[r_][a_,b_] produces an animation of the moving trihedral. After the command has finished generating the pictures, select the cell bracket that encloses them all and then press Command-y to animate the picture. ;[s] 5:0,0;26,1;41,2;206,3;215,4;239,-1; 5:1,11,8,Times,0,12,0,0,0;1,10,8,Courier,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,11,9,Helvetica,1,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = text; inactive; preserveAspect; ] You will see the frame move along the curve. Watch how the normal and binormal vectors remain perpendicular to the direction of motion: :[font = input; preserveAspect; endGroup; endGroup; ] tr[r][0,2Pi]; :[font = subsection; inactive; Cclosed; preserveAspect; startGroup; ] Exercises :[font = text; inactive; preserveAspect; ] Generate and animate the trajectory with moving trihedral for each of the following curves. :[font = text; inactive; preserveAspect; ] 1. {t, t^2, 2t^3/3 }, t in [0,3] :[font = text; inactive; preserveAspect; ] 2. {ArcTan[t], Log[t^2+1]/Sqrt[2], t-ArcTan[t]}, t in [-1,1] :[font = text; inactive; preserveAspect; endGroup; endGroup; ] 3. { t-Sin[t], 1-Cos[t], 4Sin[t/2] }, t in [0,2Pi] :[font = section; inactive; Cclosed; preserveAspect; startGroup; ] Curvature and Torsion :[font = text; inactive; Cclosed; preserveAspect; startGroup; ] The following apply to any (differentiable) vector-valued function r: ;[s] 3:0,0;67,1;68,2;70,-1; 3:1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = input; preserveAspect; ] kappa[r_][t_] := mag[CrossProduct[r'[t],r''[t]]]/mag[r'[t]]^3; tau[r_][t_] := CrossProduct[r'[t],r''[t]].r'''[t]/ mag[CrossProduct[r'[t],r''[t]]]^2; :[font = text; inactive; preserveAspect; endGroup; ] Here, kappa (the Greek letter k) is the curvature and tau (the Greek letter t) is the torsion of the curve. The curvature measures how much the curve is curving within the osculating plane, and the torsion measures how much it is twisting out of that plane. A curve is straight if and only if its curvature is zero, and it is planar if and only if its torsion is zero. These functions are intrinsic to the geometry of the curve; that is, they are independent of coordinate systems and independent of the speed of the particle along the curve. Moreover, the curvature and torsion functions together completely determine the curve; that is, if two curves have the same curvature function and torsion function, then they must be the same curve. ;[s] 13:0,0;5,1;12,2;30,3;31,4;40,5;49,6;53,7;58,8;76,9;77,10;86,11;93,12;746,-1; 13:1,11,8,Times,0,12,0,0,0;1,10,8,Courier,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Courier,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = subsection; inactive; Cclosed; pageBreak; preserveAspect; startGroup; ] Example :[font = text; inactive; Cclosed; preserveAspect; startGroup; ] Here's our twisted cubic again: :[font = input; preserveAspect; endGroup; ] r[t_] = { t, t^2, 2t^3/3 }; Show[{gr[r][0,3]}]; :[font = text; inactive; Cclosed; preserveAspect; startGroup; ] Its curvature function is: :[font = input; preserveAspect; ] kappa[r][t] // Simplify :[font = text; inactive; preserveAspect; endGroup; ] This shows that the curve curves the most at t=0 ;[s] 3:0,0;45,1;46,2;49,-1; 3:1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = text; inactive; Cclosed; preserveAspect; startGroup; ] Its torsion function is: :[font = input; preserveAspect; ] tau[r][t] // Simplify :[font = text; inactive; preserveAspect; endGroup; endGroup; ] It is very unusual for a curve's torsion function to be the same as its curvature function. :[font = subsection; inactive; Cclosed; preserveAspect; startGroup; ] Exercises :[font = text; inactive; preserveAspect; ] Examine the curvature and torsion functions for each of the following curves: :[font = text; inactive; preserveAspect; ] 1. {4Cos[t], 4Sin[t], 3t }, t in [0,2Pi] :[font = text; inactive; preserveAspect; endGroup; endGroup; ] 2. {(2t+1)/(t-1), t^2/(t-1), t+2 }, t in [2,3] :[font = section; inactive; Cclosed; preserveAspect; startGroup; ] The Frenet-Serret Formulae :[font = text; inactive; Cclosed; preserveAspect; startGroup; ] The Frenet-Serret formulae relate the derivatives of the trihedral frame vectors (T,N,B) (previously denoted as (uT,uN,uB) ) to the curvature and the torsion functions. ;[s] 13:0,0;82,1;83,2;84,3;85,4;86,5;87,6;114,7;116,8;117,9;119,10;120,11;122,12;174,-1; 13:1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = text; inactive; preserveAspect; ] The derivatives are taken with respect to arc-length, so we need to define the are-length function s for a given vector-valued function r: ;[s] 5:0,0;99,1;100,2;136,3;137,4;139,-1; 5:1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = input; preserveAspect; ] s[r_][t_] := Integrate[ mag[r'[u]], {u,0,t} ] :[font = text; inactive; preserveAspect; endGroup; ] This says that the arc-length s is the integral of the speed (which is the magnitude of the velocity vector r'.) ;[s] 6:0,0;30,1;31,2;108,3;109,4;110,5;112,-1; 6:1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,10,8,Courier,0,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = text; inactive; preserveAspect; ] The three Frenet-Serret formulae are: dT/ds = k * N dN/ds = t * B - k * T dB/ds = - t * N ;[s] 28:0,0;39,1;41,2;42,3;44,4;47,5;48,6;51,7;52,8;53,9;55,10;56,11;58,12;61,13;62,14;65,15;66,16;69,17;70,18;73,19;74,20;75,21;77,22;78,23;80,24;85,25;86,26;89,27;90,-1; 28:1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0; :[font = text; inactive; preserveAspect; ] This shows that the curvature and torsion functions completely determine how the trihedral frame vectors (T,N,B) change. ;[s] 7:0,0;106,1;107,2;108,3;109,4;110,5;111,6;121,-1; 7:1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = subsection; inactive; Cclosed; pageBreak; preserveAspect; startGroup; ] Example :[font = text; inactive; Cclosed; preserveAspect; startGroup; ] Here's our twisted cubic again: :[font = input; preserveAspect; endGroup; ] r[t_] = { t, t^2, 2t^3/3 }; Show[{gr[r][0,3]}]; :[font = text; inactive; Cclosed; preserveAspect; startGroup; ] Its arc-length function is: :[font = input; preserveAspect; ] s[r][t] :[font = text; inactive; preserveAspect; ] So, for example, the length of the arc from r[0] to r[3] is: :[font = input; preserveAspect; endGroup; ] s[r][3] :[font = text; inactive; Cclosed; preserveAspect; startGroup; ] Now we want to verify the Frenet-Serret formulae for this curve. (To find the derivative with respect to s, we divide the time derivative by ds/dt.) ;[s] 7:0,0;106,1;107,2;142,3;144,4;145,5;147,6;148,-1; 7:1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = text; inactive; Cclosed; preserveAspect; startGroup; ] The left side of the first formula is: :[font = input; preserveAspect; ] uT[r]'[t]/s[r]'[t] // Simplify :[font = text; inactive; preserveAspect; ] and the right side is: :[font = input; preserveAspect; ] kappa[r][t]*uN[r][t] // Simplify :[font = text; inactive; preserveAspect; endGroup; ] With a little more simplification, these can be shown to be equal. :[font = text; inactive; Cclosed; preserveAspect; startGroup; ] The other two equations are verified similarly: :[font = input; preserveAspect; ] uN[r]'[t]/s[r]'[t] // Simplify :[font = input; preserveAspect; ] tau[r][t]*uB[r][t] - kappa[r][t]*uT[r][t] // Simplify :[font = input; preserveAspect; ] uB[r]'[t]/s[r]'[t] // Simplify :[font = input; preserveAspect; ] -tau[r][t]*uN[r][t] // Simplify :[font = input; preserveAspect; endGroup; endGroup; endGroup; ] Simplify[%] :[font = subsection; inactive; Cclosed; preserveAspect; startGroup; ] Exercises :[font = text; inactive; preserveAspect; ] Verify the Frenet-Serret formulas for each of the following curves: :[font = text; inactive; preserveAspect; ] 1. {4Cos[t], 4Sin[t], 3t }, t in [0,2Pi] :[font = text; inactive; preserveAspect; endGroup; endGroup; endGroup; ] 2. {(2t+1)/(t-1), t^2/(t-1), t+2 }, t in [2,3] ^*)